// 封装 本地存储方法
// Class类 特性：封装 继承 多态
class Storage {
  // getItem
  get(key) {
    const value = localStorage.getItem(key)
    // 判断是不是JSON格式的字符串
    try {
      return JSON.parse(value)
    } catch {
      return value
    }
  }
  // setItem
  set(key, value) {
    if (typeof value === 'object' && value !== null) {
      value = JSON.stringify(value)
    }
    localStorage.setItem(key, value)
  }
  // removeItem
  remove(key) {
    localStorage.removeItem(key)
  }
}

// 使用类的时候需要new实例
export default new Storage()
